package br.com.evl.tecinfo.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author alysson
 */
public abstract class DAO<T> {

    public Connection conexao;
    public Statement st;
    public ResultSet consulta;
    public String tabela;

    public abstract void inserir(T tipo);

    public abstract void remover(T tipo);

    public abstract void setTable(String tabela);

    public void conectarAoBD() {
        
        try {
            conexao = DriverManager.getConnection("jdbc:mysql://localhost/CadastroHoras", "root", "3306");
            st = conexao.createStatement();

            setTable(tabela);            

        } catch (SQLException ex) {
            System.out.println("N�oo foi poss�vel conectar ao Banco de Dados");
        }
    }

    public ResultSet consultar() {
        
    	ResultSet r = null;
    	
        try {
            String a = "SELECT * FROM " + tabela;

            r = st.executeQuery(a);

        } catch (SQLException ex) {
            System.out.println("Ocorreu um erro ao consultar a " + tabela);
        }
        
        return r;
        
    }

    public void setValores(String[] valores) {

        String inserir = "INSERT INTO " + tabela + " VALUES('";

        try {

            for (int i = 0; i < valores.length; i++) {

                if (i == valores.length - 1) {
                    inserir += valores[i] + "')";

                } else {
                    inserir += valores[i] + "', '";
                }
            }

            st.executeUpdate(inserir);

            System.out.println("Valores inseridos com sucesso");

        } catch (SQLException ex) {
            System.out.println("Erro ao inserir na tabela " + tabela);
        }
    }

    public void fecharConexao() {
        try {

            st.close();

        } catch (SQLException ex) {
            System.out.println("Erro ao fechar a conex�o.");
        }
    }

}
